#!/bin/bash

#----------------------------------------------------
# File: ifconfig
# Contents: configure network interface
# Date: 9/1/19
#----------------------------------------------------

#---------------------------------------------------------------------------------------------------
# DESCRIPTION:
#
# ifconfig用于配置内核驻留网络接口. 它在系统引导时根据需要设置接口. 之后, 通常仅在调试或需要系统调整时才需要它.
#
# 如果没有给出参数, ifconfig将显示当前活动接口的状态. 如果给出单个接口参数, 则仅显示给定接口的状态; 如果给出单个-a参数,
# 它将显示所有接口的状态, 即使是那些已关闭的接口. 除此之外, 它将配置一个接口.
#---------------------------------------------------------------------------------------------------

#---------------------------------------------------------------------------------------------------
#
# ifconfig [-v] [-a] [-s] [interface]
# ifconfig [-v] interface [aftype] options | address ...
#
# interface     接口的名称. 这通常是驱动程序名称后跟一个单元号, 例如第一个以太网interface的eth0. 如果你的内核支持
# alias interface, 则可以使用eth0:0为eth0的第一个别名指定它们. 你可以使用它们分配第二个地址. 要删除alias interface,
# 请使用ifconfig eth0:0 down.
# 注意: 对于每个范围(即具有相同address/netmask的网络), 如果删除第一个(主要), 则删除所有别名.
#
# up            此标志导致interface被激活. 如果为接口分配了地址, 则会隐式指定它.
# downn         此标志导致interface被关闭
# [-]arp        在此接口上Enable或Disable ARP协议.
# [-]promisc    Enable或Disable接口的混杂模式. 如果Enable, 则接口将接收网络上的所有数据包.
# [-]allmulti   Enable或Disable全组播模式. 如果Enable, 则接口将接收网络上的所有组播数据包.
#
# mtu N         设置接口的最大传输单元(MTU).
#
# dstaddr addr  设置点对点链路(例如PPP)的远程IP地址. 此关键字现已过时; 改用pointopoint关键字.
# netmask addr  设置此接口的IP网络掩码. 此值默认为通常的A,B或C类网络掩码(从接口IP地址派生), 但可以设置为任何值.
#
# add addr/prefixlen    添加IPv6地址到接口.
# del addr/prefixlen    删除IPv6地址
#
# tunnel aa.bb.cc.dd    创建新的SIT(IPv6-in-IPv4)设备, 隧道连接到给定目标.
#
# [-]broadcast [addr]   如果给出了address参数, 请设置此接口的协议广播地址. 否则, 设置(或清除)接口的IFF_BROADCAST
# 标志.
#
# [-]pointopoint [addr] 此关键字启用接口的点对点模式, 这意味着它是两台计算机之间的直接链接, 没有其他人在监听它. 如果
# 还给出了address参数, 请设置链接另一端的协议地址, 就像过时的dstaddr关键字一样. 否则，, 置或清除接口的IFF_POINTOPOINT
# 标志.
#
# hw class address      如果设备驱动程序支持此操作, 设置此接口的硬件地址. 关键字后面必须跟硬件类的名称和硬件地址的可
# 打印ASCII等效项. 目前支持的硬件类包括ether(以太网), ax25(AMPR AX.25), ARCnet和netrom(AMPR NET/ROM).
#
# multicast             在接口上设置组播标志. 通常不需要这样做, 因为驱动程序自己正确设置了标志.
# address               要分配给此接口的IP地址.
#
#---------------------------------------------------------------------------------------------------